package com.jiangy.oauth2login.config;

import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Component;

import java.util.function.BiConsumer;

/**
 * OAuth2Login 用户处理器
 * <p>创建时间: 2024/8/12 </p>
 *
 * @author <a href="mailto:jiangliu0316@outlook.com" rel="nofollow">蒋勇</a>
 */
@Component
public class OAuth2LoginUserHandler implements BiConsumer<OAuthLoginContext, OAuth2User> {
    @Override
    public void accept(OAuthLoginContext oAuthLoginContext, OAuth2User oAuth2User) {
        // Capture user in a local data store on first authentication
        System.out.println("====首次身份验证时在本地数据存储中捕获用户====");
        System.out.println("====根据需要为用户创建账号====");
//        var account = accountService.findByName(user.getName());
//        if (account == null) {
//            this.accountService.register(context, user);
//        } else {
//            log.info("用户通过 [{}]登录, name: {}", context.getAuthentication().getAuthorizedClientRegistrationId(),
//                    user.getName());
//            // 记录用户最近登录ip和时间
//            account.setLastLoginTime(TimeUtils.currentTimestamp());
//            account.setLastLoginIp(context.getIpAddress());
//            accountService.updateById(account);
//        }
    }
}
